home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / UTILITY / TLB_V211.ARJ / LASTBYTE.DOC < prev    next >
Text File  |  1992-08-11  |  91KB  |  2,343 lines

  1.  
  2.  
  3.         
  4.  
  5.  
  6.                         THE LAST BYTE MEMORY MANAGER (tm)
  7.  
  8.                        An Upper Memory Manager for MS-DOS
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Version 2.11
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                               Copyright (C) 1990-92
  31.                                All Rights Reserved
  32.  
  33.  
  34.                                        by
  35.  
  36.  
  37.                               KEY SOFTWARE PRODUCTS
  38.  
  39.                                 440 Ninth Avenue
  40.                           Menlo Park, California 94025
  41.                                   415-364-9847
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.         The Last Byte Memory Manager is a trademark of Key Software Products.
  53.          MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
  54.              DR-DOS is a trademark of Digital Research Incorporated.
  55.                       4DOS is a trademark of J.P. Software.
  56.                      Hyperdisk is a trademark of HyperWare.
  57.  
  58.  
  59.  
  60.         
  61.  
  62.  
  63.                                 TABLE OF CONTENTS
  64.  
  65.  
  66.  
  67.         CHAPTER 1 - INTRODUCTION        ...........................    1
  68.            1.1  Seven Important Advantages      ...................    1
  69.  
  70.         CHAPTER 2 - GETTING A QUICK START     .....................    3
  71.            2.1  Checking Compatibility Using CHIPSET     ..........    3
  72.            2.2  Making a Demo Diskette for Testing   ..............    3
  73.            2.3  Viewing Upper Memory with HIGHMEM    ..............    5
  74.  
  75.         CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     .........    7
  76.            3.1  BANKSWITCH=<base>:<size>        ...................    7
  77.            3.2  CACHE=<kbytes>        .............................    8
  78.            3.3  DOS=<base>:<size>        ..........................    8
  79.            3.4  EXCLUDE=<base>:<size>        ......................    8
  80.            3.5  KEY=<AccessKey>        ............................    8
  81.            3.6  MOVE=VIDEOBIOS        .............................    9
  82.            3.7  MOVE=MAINBIOS        ..............................    9
  83.               3.7.1  The ADDHOLES suboption      ..................    9
  84.            3.8  MOVE=OVERLAY        ...............................    9
  85.            3.9  MOVE=XBDA        ..................................    9
  86.            3.10  NAME=<RegisteredUserName>        .................    9
  87.            3.11  PHYSICAL=<MemoryController>        ...............   10
  88.               3.11.1  The OVERRIDE suboption      .................   10
  89.               3.11.2  The NOEMS suboption      ....................   10
  90.            3.12  RESTRICT=<ab> <cd> <ef>      .....................   10
  91.            3.13  SHADOW=<base>:<size>        ......................   11
  92.            3.14  TEXT=<Attribute>        ..........................   12
  93.            3.15  The ? (question mark) Option    ..................   12
  94.  
  95.         CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   ...   13
  96.            4.1  HIGHDRVR Command Line Syntax     ..................   13
  97.            4.2  HIGHTSR Command Line Syntax     ...................   13
  98.            4.3  The /SIZE Option      .............................   14
  99.            4.4  Measuring Load Requirements Using /SIZE    ........   14
  100.            4.5  Achieving Best Fit Using /SIZE:n1    ..............   15
  101.            4.6  Borrowing Memory Using /SIZE:n1 n2    .............   15
  102.            4.7  The /LOW Option      ..............................   16
  103.            4.8  The /RESTRICT Option      .........................   16
  104.            4.9  The /!NOPAUSE Option      .........................   16
  105.            4.10  The /NOENV Option (HIGHTSR only)    ..............   17
  106.  
  107.         CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     ...............   18
  108.            5.1  The /REPLACE Option      ..........................   18
  109.            5.2  The /NOSPLIT Option      ..........................   18
  110.            5.3  The /RESTRICT Option      .........................   19
  111.            5.4  Limiting UMB Memory      ..........................   19
  112.  
  113.         CHAPTER 6 - SPECIAL CONSIDERATIONS       ..................   20
  114.            6.1  Specifying Command Line Options with Indirect Files   20
  115.            6.2  Using the DOS=F000:32 Option     ..................   20
  116.            6.3  Video Display RAM above 640k    ...................   21
  117.  
  118.  
  119.  
  120.         
  121.  
  122.  
  123.                                 TABLE OF CONTENTS
  124.  
  125.  
  126.            6.4  Video Adapter Bios ROMs     .......................   22
  127.            6.5  LASTBYTE.SYS and Expanded Memory     ..............   22
  128.            6.6  Fine-Tuning your Adapter Hardware Configuration       23
  129.  
  130.         CHAPTER 7 - USE WITH OTHER SOFTWARE     ...................   25
  131.            7.1  Microsoft's FASTOPEN and MODE programs    .........   25
  132.            7.2  Microsoft's SHARE program      ....................   25
  133.            7.3  Microsoft's MS-DOS 5.0      .......................   26
  134.               7.3.1  Using DEVICEHIGH and LOADHIGH     ............   27
  135.               7.3.2  Using HIGHDRVR and HIGHTSR     ...............   27
  136.            7.4  Microsoft Windows       ...........................   28
  137.               7.4.1  Modifying the Windows SYSTEM.INI File    .....   28
  138.               7.4.2  Positioning an EMS Page Frame    .............   29
  139.               7.4.3  "Unsupported Data Configuration"      ........   29
  140.               7.4.4  HIGHMEM and Windows 386 Enhanced Mode   ......   30
  141.            7.5  HyperWare's HyperDisk       .......................   30
  142.            7.6  J.P. Software's 4DOS      .........................   30
  143.            7.7  David Hamilton's BUFFIT      ......................   31
  144.            7.8  Charles Lazo's WAS      ...........................   31
  145.            7.9  Philip Gardner's DOSMAX      ......................   31
  146.  
  147.         APPENDIX 1 - HOW TO REACH US     ..........................   33
  148.  
  149.         APPENDIX 2 - ACKNOWLEDGEMENTS        ......................   35
  150.  
  151.         APPENDIX 3 - LIMITED WARRANTY       .......................   36
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.         
  181.  
  182.  
  183.  
  184.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               1
  185.  
  186.  
  187.                         CHAPTER 1 - INTRODUCTION        
  188.  
  189.  
  190.         The  Last  Byte  Memory  Manager is a collection of software that
  191.         can  provide  up to 384k of additional memory to your computer in
  192.         the  upper  memory  area between 640k and 1 meg.  It does this by
  193.         using  shadow ram memory, existing fixed read/write (RAM) memory,
  194.         or by mapping expanded memory (EMS) pages into the upper area.  
  195.  
  196.         With  The Last Byte Memory Manager, device drivers, terminate and
  197.         stay  resident  (TSR)  programs,  and  more  can be moved up into
  198.         upper  memory,  leaving  more  conventional  memory available for
  199.         your  application  programs.  Depending on your hardware, you may
  200.         also  be  able  to extend the total conventional memory from 640k
  201.         to as much as 736k.  
  202.  
  203.         The  Last  Byte  Memory  Manager  package  also  includes several
  204.         advanced  utility  programs that can move the master environment,
  205.         DOS  FILES,  DOS  BUFFERS  into  upper  memory.   Other  advanced
  206.         utilities  create  ram disks, print spoolers, command line recall
  207.         (history)  buffers,  emulated  expanded memory, and TSR "markers"
  208.         (to  facilitate  TSR  removal).  Best of all, these utilities can
  209.         even  use  shadow  ram memory which has been disabled (refered to
  210.         as  "Bank-Switch"  memory) by the presence of the display buffer,
  211.         unshadowed read-only memories (ROMs), and other adapter cards.  
  212.  
  213.  
  214.         1.1 Seven Important Advantages       
  215.  
  216.         The  Last Byte Memory Manager offers seven significant advantages
  217.         over other MS-DOS Upper Memory Managers: 
  218.  
  219.              1.  The  Last  Byte Memory Manager leaves no "stubs" in
  220.                  conventional memory.  
  221.  
  222.              2.  The  Last  Byte  Memory  Manager will work with any
  223.                  processor  chip, even the 8088 used in the original
  224.                  IBM  PC.  Many memory managers require a 386 cpu or
  225.                  better.  
  226.  
  227.              3.  The  Last Byte Memory Manager doesn't use protected
  228.                  mode.   Unlike  those  memory managers that do, The
  229.                  Last  Byte  Memory  Manager  is  totally compatible
  230.                  with   any   protected   mode  software,  not  just
  231.                  Microsoft Windows.  
  232.  
  233.              4.  The  Last  Byte  Memory Manager doesn't require any
  234.                  extended  memory.   Some  memory managers depend on
  235.                  the  processor's  ability  to remap physical memory
  236.                  from above 1MB into the upper memory area.  
  237.  
  238.  
  239.  
  240.  
  241.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  242.  
  243.  
  244.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               2
  245.  
  246.  
  247.              5.  On  motherboards  that  use  one  of  the supported
  248.                  memory  controller  chips,  The  Last  Byte  Memory
  249.                  Manager,  unlike all other memory managers, can use
  250.                  the  unused  shadow  ram  normally  disabled by the
  251.                  display  buffer,  unshadowed ROMs or adapter cards.
  252.                  This  gives  it  the unique ability to use all 384k
  253.                  of upper memory! 
  254.  
  255.              6.  The  Last  Byte  Memory  Manager does not slow down
  256.                  the  performance  of your computer, because it does
  257.                  not  incur the 5-10% execution overhead inherent in
  258.                  protected mode.  
  259.  
  260.              7.  On  motherboards  that  use  one  of  the supported
  261.                  memory  controller  chips,  The  Last  Byte  Memory
  262.                  Manager   can   extend  conventional  memory  using
  263.                  regular  full-speed  motherboard memory rather than
  264.                  using  the  EGA/VGA  display  buffer.  (The display
  265.                  buffer  memory of some EGA/VGA adapter cards can be
  266.                  as much as six times slower than regular memory.)  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  302.  
  303.  
  304.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               3
  305.  
  306.  
  307.                      CHAPTER 2 - GETTING A QUICK START     
  308.  
  309.  
  310.         The  first  thing  to  do is to be sure that The Last Byte Memory
  311.         Manager   will   work   on  your  computer.   Fundamentally,  the
  312.         requirements  are  DOS  version  3.1  or later and some method of
  313.         implementing  memory  in the upper memory area between 640k and 1
  314.         meg.    Any   Intel  (or  Intel-compatible)  processor  will  do,
  315.         including  the  original  Intel  8088 cpu.  No extended memory is
  316.         required.  
  317.  
  318.  
  319.         2.1 Checking Compatibility Using CHIPSET      
  320.  
  321.         The  CHIPSET  program  is  designed to determine if The Last Byte
  322.         Memory   Manager  is  compatible  with  your  computer.   To  run
  323.         CHIPSET, simply enter its name on the command line: 
  324.  
  325.                 A>CHIPSET 
  326.  
  327.         If  successful, CHIPSET will give you the option of automatically
  328.         linking  to  the INSTALL program to either create a demo diskette
  329.         (as  described  below)  or  to  install the software on your hard
  330.         disk.   For  more detailed information on the CHIPSET program and
  331.         system requirements, consult the file CHIPSET.DOC.  
  332.  
  333.  
  334.         2.2 Making a Demo Diskette for Testing    
  335.  
  336.         To  install The Last Byte Memory Manager on a floppy diskette for
  337.         testing, perform the following three steps: 
  338.  
  339.              Step 1:  Use  the  MS-DOS  FORMAT  command  with the /S
  340.                       option  to  prepare  a  bootable  floppy disk.
  341.                       You will need this in Step 2.  
  342.  
  343.              Step 2:  Run  the  CHIPSET program.  If it succeeds, it
  344.                       will  ask  you "Do you want to run the INSTALL
  345.                       program  now?".  Answer yes.  When it displays
  346.                       the  first  screen  of  the  INSTALL  program,
  347.                       select   the   first   option,   "Creating   a
  348.                       demonstration   diskette"   and   follow   the
  349.                       prompts.  
  350.  
  351.              Step 3:   Once  you  have  created  your  demonstration
  352.                       diskette,  press  Ctrl-Alt-Del  to reboot your
  353.                       computer from the diskette.  
  354.  
  355.         When  your  computer  reboots,  LASTBYTE.SYS  will  pause  thirty
  356.         seconds  and  then  require a keypress to proceed.  The pause and
  357.         the  keypress are removed when you purchase and install an access
  358.  
  359.  
  360.  
  361.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  362.  
  363.  
  364.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               4
  365.  
  366.  
  367.         key   (see   ORDERFRM.DOC).    There   are,   however,  no  other
  368.         restrictions   on   the  unlicensed  version  -  it  is  a  fully
  369.         functional version of the software.  
  370.  
  371.         If  everything  goes ok during the boot, you'll see a sign-on box
  372.         that looks something like the following: 
  373.  
  374.       ╔═══════════════════════════════════════════════════════════════════╗
  375.       ║         THE LAST BYTE MEMORY MANAGER (tm) Version 2.11a           ║
  376.       ║ Copyright (C) 1990-92, Key Software Products, All Rights Reserved ║
  377.       ║    « You can LICENSE a copy of this software for only $29.95! »   ║
  378.       ╟───────────────────────────────────────────────────────────────────╢
  379.       ║     50.0 Mhz 80486 with 256KB Cache and OPTi Electronics 82C495   ║
  380.       ╟───────────────────────────────────────────────────────────────────╢
  381.       ║  Address Range  Size    Width    Bandwidth    Description         ║
  382.       ║                256 KB 128 bits 200.0 MB/Sec   Secondary CPU Cache ║
  383.       ║   00000-9FFFF  640 KB  32 bits  97.6 MB/Sec   Conventional Memory ║
  384.       ║   C0000-EFFFF  192 KB  32 bits  97.6 MB/Sec   Shadow Ram Memory   ║
  385.       ║   A0000-AFFFF   64 KB  16 bits   1.7 MB/Sec   VGA Graphics Buffer ║
  386.       ║   B8000-BFFFF   32 KB  16 bits   1.7 MB/Sec   VGA Color Text Bfr  ║
  387.       ║   C0000-C7FFF   32 KB   8 bits   1.2 MB/Sec   VGA Adapter Bios    ║
  388.       ║   C8000-C97FF    6 KB   8 bits   1.2 MB/Sec   Fixed Disk Bios     ║
  389.       ║   C9800-C9BFF    1 KB   8 bits   1.2 MB/Sec   Fixed Disk Ram      ║
  390.       ║   F0000-FFFFF   64 KB   8 bits   2.0 MB/Sec   AMI Bios (06/06/91) ║
  391.       ╟───────────────────────────────────────────────────────────────────╢
  392.       ║ Conv:640k High-DOS:144k Bank-Switch:16k Shadowed:96k Excluded:128k║
  393.       ╟───────────────────────────────────────────────────────────────────╢
  394.       ║ The Last Byte Memory Manager is a trademark of Key Software Prod. ║
  395.       ╚═══════════════════════════════════════════════════════════════════╝
  396.  
  397.         If  your computer stops before displaying the box shown above, or
  398.         if  it  fails  to  operate  properly after booting, there are two
  399.         possible reasons: 
  400.  
  401.              1.  CHIPSET  identified  the  wrong  memory controller.
  402.                  Try  running  CHIPSET again, and this time manually
  403.                  test  each of the menu options, noting if more than
  404.                  one  chipset  is  identified.   If so, then run the
  405.                  INSTALL   program   again  for  one  of  the  other
  406.                  chipsets that it finds.  
  407.  
  408.              2.  The  Last  Byte  Memory Manager failed to recognize
  409.                  one  of  your  installed  adapters  that  uses some
  410.                  portion  of  the  upper  memory  address space.  If
  411.                  this  happens,  you'll  probably  need  to  use  an
  412.                  EXCLUDE  option on the LASTBYTE.SYS command line to
  413.                  manually  disable the corresponding region(s) where
  414.                  conflict occurs.   
  415.  
  416.         To  temporarily  get  around  either  of  these problems, you can
  417.         reboot  and manually bypass execution of all The Last Byte Memory
  418.  
  419.  
  420.  
  421.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  422.  
  423.  
  424.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               5
  425.  
  426.  
  427.         Manager  software  by  simultaneously holding down the <alt> key,
  428.         the  <ctrl>  key,  and either the <leftshift> or <rightshift> key
  429.         during the boot sequence.  
  430.  
  431.         If  The  Last  Byte  Memory  Manager  installs  and  AUTOEXEC.BAT
  432.         finishes  properly,  then  your  display  will be filled with the
  433.         output  of  the  HIGHMEM  program  and  the  current time will be
  434.         displayed  in  inverse video in the upper left-hand corner.  This
  435.         verifies  that  HIGHTSR  has  successfully loaded both the device
  436.         driver  ANSI.SYS  and the TSR program CLOCK.EXE into upper memory
  437.         and that they are operating properly.  
  438.  
  439.         To exit from HIGHMEM, simply press the Esc key.  
  440.  
  441.         Once  you  are  convinced  that  The  Last Byte Memory Manager is
  442.         working  satisfactorily,  you may install it on your hard disk by
  443.         making drive C: the current drive by entering 
  444.  
  445.                 C: 
  446.  
  447.         and rerunning CHIPSET or INSTALL.  
  448.  
  449.  
  450.         2.3 Viewing Upper Memory with HIGHMEM     
  451.  
  452.         Depending  on  what  adapter  cards you have installed, HIGHMEM's
  453.         output should look something like that shown below.  
  454.  
  455.         Bracketed  numbers  in  the  High-DOS  column (e.g., "[141,136]")
  456.         indicate  free  memory  that  is  available for additional device
  457.         drivers  and TSRs.  Bracketed numbers in the "Bank-Switch" column
  458.         (if  any)  indicate  free  memory that can be used by some of the
  459.         advanced  utilities  contained  in  the  file  TLB-A211.ZIP; this
  460.         memory  can  be  used  to  implement a ram disk, a print spooler,
  461.         emulated EMS memory, or TSR markers.  
  462.  
  463.         Note:  HIGHMEM  automatically  senses whether you have a color or
  464.         monochrome  display  to  determine  how  to  present  data on the
  465.         screen.   However, you may force the mode using one of the /MONO,
  466.         /COLOR, or /LCD command line options.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  482.  
  483.  
  484.       Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               6
  485.  
  486.  
  487.       HIGHMEM v2.11a (C) Key Software Products 1990-92. All Rights Reserved.
  488.  
  489.       MCB  Hex Address Description [Type] <Mark> High-DOS Bnk-Swtch  Total
  490.       ──── ─────────── ───────────────────────── ──────── ───────── ───────
  491.       CC00 A0000-CBFFF Reserved Memory Group
  492.       CC02 A0000-AFFFF ╠═16-bit VGA Graphics Buffer                  65,536
  493.       CC04 B0000-B7FFF ╠═Unavailable                                 32,768
  494.       CC06 B8000-BFFFF ╠═16-bit VGA Color Text Buffer                32,768
  495.       CC08 C0000-C7FFF ╠═Shadowed 8-bit VGA Bios Rom                 32,768
  496.       CC0A C8000-C97FF ╠═8-bit Fixed Disk Adapter Bios    [  6,144][  6,144]
  497.       CC0C C9800-C9BFF ╠═8-bit Fixed Disk Adapter Ram     [  1,024][  1,024]
  498.       CC0E C9C00-CBFFF ╚═DOS Unusable                     [  9,216][  9,216]
  499.       CC10 CC110-CC54F LASTBYTE    [DEV]           1,088              1,088
  500.       CC55 CC560-CD5BF ANSI        [DEV]           4,192              4,192
  501.       CD5C CD5D0-CD6CF CLOCK       [ENV]             256                256
  502.       CD6D CD6E0-CD88F CLOCK       [TSR]             432                432
  503.       CD89 CD8A0-EFFEF [∙∙∙Free∙∙∙]             [141,136]          [141,136]
  504.       EFFF F0000-FFFFF Shadowed 8-bit AMI Bios Main Bios             65,536
  505.                                                  ───────   ───────  ───────
  506.                             Upper Memory In Use:   5,968         0  235,344
  507.                             [Free Upper Memory]: 141,136    16,384  157,520
  508.                                    MCB Overhead:     352       n/a      352
  509.                             [No HMA Configured]  ───────   ───────  ───────
  510.                              Total Upper Memory: 147,456    16,384  393,216
  511.  
  512.         The  following  article  provides  an excellent definition of the
  513.         various   kinds   of  memory,  such  as  conventional,  extended,
  514.         expanded,  high,  and  upper.   More  important,  however, is its
  515.         discussion  of  how  various  adapter cards make use of the upper
  516.         address  space,  and  may  provide  some insight if you're having
  517.         problems   getting  The  Last  Byte  Memory  Manager  to  install
  518.         properly: 
  519.  
  520.              Barry  Simon,  "How  to Get the Most from Your System's
  521.              High  DOS Memory", PC Magazine, Vol. 9, No. 10 (May 29,
  522.              1990), pp. 347-358.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  542.  
  543.  
  544.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               7
  545.  
  546.  
  547.                CHAPTER 3 - LASTBYTE.SYS COMMAND LINE OPTIONS     
  548.  
  549.  
  550.         During  initialization,  LASTBYTE.SYS  scans upper memory looking
  551.         for  Bios  ROMs, the video display buffer, and adapter cards that
  552.         use  some  portion  of  the  upper  memory address space.  Of the
  553.         upper  memory  available on your computer, the unoccupied portion
  554.         defaults  to  High-DOS  memory, and the occupied portion defaults
  555.         to Bank-Switch memory.  
  556.  
  557.         These  defaults  can  be  modified  by  the  use  of command line
  558.         options.    There   are   several   command   line   options  for
  559.         LASTBYTE.SYS.  Many of these use a format like: 
  560.  
  561.                 <keyword>=<base>:<size> 
  562.  
  563.         where  <keyword>  is  one  of  the  option  keywords  and  may be
  564.         abbreviated   by   its  first  letter,  <base>  is  a  four-digit
  565.         hexadecimal  segment  address  in  the  range  A000  to FC00, and
  566.         <size> is a decimal number in kilobytes.  
  567.  
  568.         There are two restrictions on these options: 
  569.  
  570.              1.  The  base  must  be  exactly  4 hexadecimal digits,
  571.                  must  lie  at or above A000, and must be a multiple
  572.                  of 0020 (512 bytes), and 
  573.  
  574.              2.  The size must be in the range 1-384 kb.  
  575.  
  576.         The  "multiple  of 0020" requirement for the base is necessary to
  577.         be  consistent  with  the  resolution  that  The Last Byte Memory
  578.         Manager  uses  to  organize  high  memory  during initialization.
  579.         However,  this  requirement is often affected by the much coarser
  580.         resolution used by most memory controllers.  
  581.  
  582.         The  upper area is partitioned into blocks.  Some controllers use
  583.         16k  blocks,  some use 32k blocks, and some use 64k blocks.  Each
  584.         block  must  be either totally enabled or disabled.  I.e., if any
  585.         part  of  a  block's address space is disabled by the presence of
  586.         an  adapter  card,  the  entire  block  of memory is disabled and
  587.         cannot be made available as High-DOS Memory.  
  588.  
  589.  
  590.         3.1 BANKSWITCH=<base>:<size>         
  591.  
  592.         Forces  a  region  of upper memory that would normally be used as
  593.         High-DOS memory to be made available as Bank-Switch memory.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  602.  
  603.  
  604.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               8
  605.  
  606.  
  607.                 ┌─────────────────────────────────────────────────┐
  608.                 │ This option requires a memory controller chip.  │
  609.                 └─────────────────────────────────────────────────┘ 
  610.  
  611.  
  612.         3.2 CACHE=<kbytes>         
  613.  
  614.         Forces  LASTBYTE.SYS  to  think that there is a cache between the
  615.         CPU  and  main  memory and to set its size.  (This has nothing to
  616.         do  with  disk  caching!)  This option is not normally necessary;
  617.         LASTBYTE.SYS  normally  will automatically detect the presence of
  618.         a cache and its size.  
  619.  
  620.         Activating  bank-switch memory causes the contents of a cache (if
  621.         present)  to  be  invalid;  this  is known as a "cache coherency"
  622.         problem.    If   a   cache   is   detected  during  installation,
  623.         LASTBYTE.SYS  checks  to  see if any portion of the upper address
  624.         space  is  cached.   If  not,  then  no  cache  coherency problem
  625.         exists.  
  626.  
  627.         If  the upper address space is cached, however, LASTBYTE.SYS will
  628.         flush  the  cache  on every access to Bank-Switch memory in order
  629.         to  prevent  the  cache  from  providing invalid data to the CPU.
  630.         The  cache  is flushed by filling it from low memory.  The <size>
  631.         value is used to determine how much to fill.  
  632.  
  633.  
  634.         3.3 DOS=<base>:<size>         
  635.  
  636.         Forces  a  region  of upper memory that would normally be used as
  637.         Bank-Switch memory to be made available as High-DOS memory.  
  638.  
  639.  
  640.         3.4 EXCLUDE=<base>:<size>         
  641.  
  642.         Forces  a  region  of upper memory unavailable as either High-DOS
  643.         or Bank-Switch memory.  
  644.  
  645.  
  646.         3.5 KEY=<AccessKey>         
  647.  
  648.         When  you register The Last Byte Memory Manager, you are given an
  649.         access  key that is derived from the spelling of your name.  This
  650.         eight  character  key  should  be specified using this option, as
  651.         in: 
  652.  
  653.                 KEY=12345678 
  654.  
  655.         This  option  must  be  used  in conjunction with the NAME option
  656.         discussed below.  
  657.  
  658.  
  659.  
  660.  
  661.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  662.  
  663.  
  664.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)               9
  665.  
  666.  
  667.  
  668.         3.6 MOVE=VIDEOBIOS         
  669.  
  670.         Tries  to move an EGA or VGA bios to a better location within the
  671.         available  upper  memory in order to reduce fragmentation of free
  672.         memory.  
  673.  
  674.  
  675.         3.7 MOVE=MAINBIOS         
  676.  
  677.         Tries  to  move  the  main  bios  to a better location within the
  678.         available  upper  memory in order to reduce fragmentation of free
  679.         memory.  
  680.  
  681.  
  682.         3.7.1 The ADDHOLES suboption       
  683.  
  684.         MOVE=MAINBIOS,ADDHOLES  will  create  seven holes in the residual
  685.         8k left at FE00 for a total of more than 3k.  
  686.  
  687.  
  688.         3.8 MOVE=OVERLAY         
  689.  
  690.         This  option  is  for  chipsets in which the main bios shadow ram
  691.         cannot  be  made  read/write  (ETEQ,  OPTi,  Intel,  and  some by
  692.         VLSI).   This option puts that ram in write-only mode, copies the
  693.         video  bios  on  top  of the main bios initialization code at the
  694.         beginning  of  the  bios, then returns the ram to read-only mode.
  695.         Then  the  old  video  bios  region is converted to usable Hi-DOS
  696.         memory.  
  697.  
  698.  
  699.         3.9 MOVE=XBDA         
  700.  
  701.         This  option  relocates the Extended Bios Data Area (XBDA), if it
  702.         exists,  into  Upper  Memory.  The XBDA is usually 1k reserved at
  703.         the  top  of  conventional  memory  by  the  main  Bios.  Not all
  704.         machines  use an XBDA, but if it exists, LASTBYTE.SYS will report
  705.         639k  of  Conventional  Memory  instead of 640k, and the advanced
  706.         utility   HIGHAPND  will  refuse  to  append  any  memory.   Some
  707.         machines  may  not operate properly with a relocated XBDA, so use
  708.         this  option with caution.  (Note that some computer viruses also
  709.         "steal" the top 1k of memory.) 
  710.  
  711.  
  712.         3.10 NAME=<RegisteredUserName>         
  713.  
  714.         When  you register The Last Byte Memory Manager, you are given an
  715.         access  key that is derived from the spelling of your name.  This
  716.         option  is  used  to  specify  your name as used to generate that
  717.         key, as in: 
  718.  
  719.  
  720.  
  721.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  722.  
  723.  
  724.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              10
  725.  
  726.  
  727.  
  728.                 NAME=Daniel_W._Lewis 
  729.  
  730.                 ┌─────────────────────────────────────────────────┐
  731.                 │ Note: Spaces MUST be indicated by underscores!  │
  732.                 └─────────────────────────────────────────────────┘ 
  733.  
  734.         This  option  should  be  used in conjunction with the KEY option
  735.         discussed earlier.  
  736.  
  737.  
  738.         3.11 PHYSICAL=<MemoryController>         
  739.  
  740.         Used  to  specify the memory controller determined by the CHIPSET
  741.         program.  
  742.  
  743.  
  744.         3.11.1 The OVERRIDE suboption       
  745.  
  746.         Many  memory  controller chips can relocate all or part of shadow
  747.         ram  to  the  top of (extended) memory.  If LASTBYTE.SYS fails to
  748.         install with the error message: 
  749.  
  750.                "Shadow Ram memory relocated - Use OVERRIDE option"
  751.  
  752.         try adding the OVERRIDE suboption to the PHYSICAL option, as in: 
  753.  
  754.                 PHYSICAL=82C212,OVERRIDE 
  755.  
  756.         This  disables  any  shadow ram relocation that may be in effect,
  757.         regardless  of  your  CMOS  configuration  menu  setup.  The CMOS
  758.         setup  menu  of  your  BIOS may also provide an option to disable
  759.         relocation  directly,  but  there are some that determine whether
  760.         to relocate or not based on other configuration options.   
  761.  
  762.  
  763.         3.11.2 The NOEMS suboption       
  764.  
  765.         May  be  used in conjunction with PHYSICAL=LIM4EMS or EEMS to use
  766.         the 64k page frame as High-DOS Memory, as in: 
  767.  
  768.                 PHYSICAL=LIM4EMS,NOEMS 
  769.  
  770.         The   NOEMS   suboption   must   be   used  in  conjunction  with
  771.         PHYSICAL=LIM3EMS   (i.e.,   PHYSICAL=LIM3EMS,NOEMS).    Doing  so
  772.         disables other (normal) use of all expanded memory.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  782.  
  783.  
  784.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              11
  785.  
  786.  
  787.         3.12 RESTRICT=<ab> <cd> <ef>       
  788.  
  789.         Address  lines  A15 and A16 are not latched in hardware design of
  790.         the  AT  bus.  As a consequence, some 16-bit adapter cards do not
  791.         properly  decode  these  address  lines  within  the  narrow time
  792.         constraints  imposed  by  the  Address Latch Enable (ALE) signal,
  793.         and  will  occassionally  respond  to  a  memory  access  that is
  794.         directed  at  some  other portion of the address space.  Thinking
  795.         that  it  is  for  them, they force the transfer into 16-bit mode
  796.         even  though the intended recipient requires 8-bit mode, and thus
  797.         cause  erroneous  data  to  be  transferred  to  the bytes in the
  798.         odd-numbered addresses.  
  799.  
  800.         The  most common (and damaging) occurence occurs during the 8-bit
  801.         DMA  transfers  between a floppy disk drive and upper memory near
  802.         the address space occupied by an offending 16-bit adapter card.  
  803.  
  804.         Due  to  organization  of the address signals on the AT bus, this
  805.         phenomena  only  occurs when the two address areas are within the
  806.         same  128k  region.   There  are  three such regions in the upper
  807.         area:  A0000-BFFFF,  C0000-DFFFF,  and E0000-FFFFF.  LASTBYTE.SYS
  808.         automatically  senses  the  presence  of  16-bit adapter cards in
  809.         each  of  these three regions and records this information within
  810.         its  resident image for use by its utilities.  LASTBYTE.SYS skips
  811.         this  test  if it detects a PC with a Micro Channel bus (like the
  812.         PS/2) since problem was corrected in its design.  
  813.  
  814.         The  RESTRICT  option  is  provided  to  override  this automatic
  815.         detection  of  16-bit adapters.  Each of the three arguments (one
  816.         per  128k region) should be replaced by either "0" (indicating no
  817.         16-bit  adapters),  or  "1"  (indicating the presense of a 16-bit
  818.         adapter) and separated by commas.  
  819.  
  820.         For  example,  the  option RESTRICT=1,1,0 would imply that one or
  821.         more  16-bit  adapters  are located in the first two 128k regions
  822.         of   upper   memory  (A000-DFFF),  so  that  when  the  companion
  823.         /RESTRICT  option  of HIGHDRVR, HIGHTSR, or HIGHUMM is used, only
  824.         High-DOS memory in the region E000-FFFF will be allocated.  
  825.  
  826.         (Note:  The  /RESTRICT  option  is also supported by the advanced
  827.         utilities  HIGHEMS3,  and HIGHEMS4.  The default operation of the
  828.         advanced  utility HIGHBFRS is /RESTRICT, but this may be disabled
  829.         by use of its /NORESTRICT option.) 
  830.  
  831.  
  832.         3.13 SHADOW=<base>:<size>         
  833.  
  834.         The  Last  Byte  Memory Manager will automatically copy the video
  835.         bios  and  main  bios  to  shadow  ram  if  they  aren't  already
  836.         shadowed.   However,  it  will  not do so for other adapter ROMs.
  837.         This   is   because  some  controllers  "hide"  a  small  RAM  by
  838.  
  839.  
  840.  
  841.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  842.  
  843.  
  844.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              12
  845.  
  846.  
  847.         overlaying  it  in  a  portion  of  the  same  address space they
  848.         declare  as  being  filled  with  ROM.   Such  a RAM is no longer
  849.         accessible  when the ROM is shadowed, usually causing the adapter
  850.         to stop functioning.  
  851.  
  852.         This  option  is  for those who want to forces a region of memory
  853.         (presumably  ROM)  to  be  copied  into  shadow  ram.   If  other
  854.         hardware  is  detected  outside  the specified region, but within
  855.         the  same  memory  controller  block  which  conflicts  with this
  856.         request,  a  corresponding  error  message  will be displayed and
  857.         LASTBYTE.SYS will not be installed.  
  858.  
  859.                 ┌─────────────────────────────────────────────────┐
  860.                 │ This option requires a memory controller chip.  │
  861.                 └─────────────────────────────────────────────────┘ 
  862.  
  863.  
  864.         3.14 TEXT=<Attribute>         
  865.  
  866.         The  information  screen  invoked  by  the "?" option defaults to
  867.         bright  white  on  blue  if  a  color  display  is active, and to
  868.         inverse  video  if  a  monochrome monitor is active.  This option
  869.         changes  the  default  to  the  parameter  value specified, where
  870.         <Attribute>  is  the hexadecimal value of the attribute byte used
  871.         to paint the screen.  
  872.  
  873.  
  874.         3.15 The ? (question mark) Option     
  875.  
  876.         Causes  LASTBYTE.SYS  to  erase  the screen, display a summary of
  877.         what  it  finds  in  the  upper  memory  area,  and pause for two
  878.         seconds   to   give   the   user   an  opportunity  to  read  the
  879.         information.   To  freeze this display for a longer period, press
  880.         <Ctrl>-S;  then to continue with CONFIG.SYS processing, press any
  881.         key.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  902.  
  903.  
  904.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              13
  905.  
  906.  
  907.             CHAPTER 4 - HIGHDRVR AND HIGHTSR COMMAND LINE OPTIONS   
  908.  
  909.  
  910.         HIGHDRVR  is  a  device  driver that is used to load other device
  911.         drivers  into upper memory.  HIGHTSR is a program that is used to
  912.         load  TSR programs into upper memory.  Both utilities use most of
  913.         the  same  command line options as discussed in the sections that
  914.         follow.  
  915.  
  916.  
  917.         4.1 HIGHDRVR Command Line Syntax      
  918.  
  919.         The command line syntax of the CONFIG.SYS line for HIGHDRVR is: 
  920.  
  921.             DEVICE=[path]HIGHDRVR.SYS [options] <filespec> [options]
  922.  
  923.         where  '<filespec>'  is  the  filename of the device driver to be
  924.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  925.         specifcation.   The  filespec  may  be  preceded  by  one or more
  926.         options,  and  followed by options at the end of the command line
  927.         as required by the particular driver to be loaded.  
  928.  
  929.         When  HIGHDRVR  searches  the disk for the device driver to load,
  930.         it follows the following search strategy: 
  931.  
  932.              1.  If  '<filespec>'  includes  a  drive  or  directory
  933.                  specification,  this  will  be  the only place that
  934.                  HIGHDRVR will look.  
  935.  
  936.         Otherwise, HIGHDRVR will search for the driver in: 
  937.  
  938.              2.  The current (root) directory, and then 
  939.  
  940.              3.  The same directory where HIGHDRVR was found.  
  941.  
  942.  
  943.         4.2 HIGHTSR Command Line Syntax      
  944.  
  945.         The command line syntax for HIGHTSR is: 
  946.  
  947.                   [path]HIGHTSR [options] <filespec> [options]
  948.  
  949.         where  '<filespec>'  is  the  filename  of  the TSR program to be
  950.         loaded  high,  optionally  prefixed  by  a  drive  and  directory
  951.         specifcation.   The  filespec  may  be  preceded  by  one or more
  952.         options,  and  followed by options at the end of the command line
  953.         as required by the particular TSR to be loaded.  
  954.  
  955.         When  HIGHTSR searches the disk for the device driver to load, it
  956.         follows   the   same  strategy  that  MS-DOS  uses  when  loading
  957.         programs: 
  958.  
  959.  
  960.  
  961.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  962.  
  963.  
  964.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              14
  965.  
  966.  
  967.  
  968.              1.  If  '<filespec>'  includes  a  drive  or  directory
  969.                  specification,  this  will  be  the only place that
  970.                  HIGHTSR will look.  
  971.  
  972.         Otherwise, HIGHTSR will search for the TSR program in: 
  973.  
  974.              2.  The current directory, and then 
  975.  
  976.              3.  Those  directories  given  by  the PATH environment
  977.                  variable.  
  978.  
  979.         HIGHTSR  may also be used with the MS-DOS "INSTALL=" directive of
  980.         a CONFIG.SYS file.  
  981.  
  982.  
  983.         4.3 The /SIZE Option       
  984.  
  985.         The  amount  of  High-DOS memory required to load a device driver
  986.         or  TSR  is  the  larger  of two amounts: (1) the amount required
  987.         during  initialization  and  (2)  the  final resident requirement
  988.         once  installed.   Either or both of these may be greater than or
  989.         equal to the size of the file.  
  990.  
  991.         Most   device   drivers   and   TSR's  require  more  memory  for
  992.         initialization  than  when  resident,  although  there  are a few
  993.         (such   as   SMARTDRV.SYS  and  NANSI.SYS)  which  require  extra
  994.         resident  memory  for  buffers,  etc.   The  normal  operation of
  995.         HIGHDRVR  and  HIGHTSR is to use the largest free High-DOS memory
  996.         block  to load the software since the resident memory requirement
  997.         cannot  be  determined  until  after the software has been loaded
  998.         and initialized.  
  999.  
  1000.         Unfortunately,  this  can  lead  to  a  less  than optimum use of
  1001.         memory.   If  the  memory  requirements were known, then a memory
  1002.         block  could  be  selected using a "best fit" strategy; i.e., the
  1003.         smallest  free  High-DOS  memory  block  which  is larger than or
  1004.         equal  to  the  load  requirement.   This usually results in much
  1005.         better utilization of memory.  
  1006.  
  1007.  
  1008.         4.4 Measuring Load Requirements Using /SIZE     
  1009.  
  1010.         If  inserted  on the command line of HIGHTSR or HIGHDRVR as shown
  1011.         below: 
  1012.  
  1013.                 HIGHTSR /SIZE PRINT /D:PRN 
  1014.  
  1015.                 -or- 
  1016.  
  1017.                 DEVICE=HIGHDRVR.SYS /SIZE ANSI.SYS 
  1018.  
  1019.  
  1020.  
  1021.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1022.  
  1023.  
  1024.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              15
  1025.  
  1026.  
  1027.  
  1028.         then  both  the  initialization and resident requirements will be
  1029.         displayed  on  the console after the software has been loaded and
  1030.         initialized.  
  1031.  
  1032.  
  1033.         4.5 Achieving Best Fit Using /SIZE:n1     
  1034.  
  1035.         The  larger  of  the initialization and resident requirements may
  1036.         be  specified  with  the  /SIZE  option  to  force  a  "best fit"
  1037.         allocation.  For example: 
  1038.  
  1039.                 HIGHTSR /SIZE:17120 PRINT.EXE /D:PRN 
  1040.  
  1041.                 -or- 
  1042.  
  1043.                 DEVICE=HIGHDRVR.SYS /SIZE:12032 ANSI.SYS 
  1044.  
  1045.  
  1046.         4.6 Borrowing Memory Using /SIZE:n1 n2     
  1047.  
  1048.         Usually  the resident requirement is less than the initialization
  1049.         requirement.   If  there  isn't  enough  free  High-DOS memory to
  1050.         satisfy  the  initialization requirement, but there is enough for
  1051.         the  resident  requirement,  then  you  may still be able to load
  1052.         your  software  by adding a second parameter to the /SIZE option,
  1053.         as in: 
  1054.  
  1055.                 HIGHTSR /SIZE:16208,5776 PRINT /D:PRN 
  1056.  
  1057.                 -or- 
  1058.  
  1059.                 DEVICE=HIGHDRVR.SYS /SIZE:12032,4820 ANSI.SYS 
  1060.  
  1061.         In  this  example, the initialization requirement is specified by
  1062.         the  first parameter and is 16208 bytes; the resident requirement
  1063.         is  specified  by  the  second parameter and is 5776 bytes.  Note
  1064.         that  specifying  the  second parameter is not helpful unless the
  1065.         resident    requirement   is   less   than   the   initialization
  1066.         requirement.  
  1067.  
  1068.         When  the  second  parameter  is  used, HIGHTSR first looks for a
  1069.         free  area larger than or equal to the initialization requirement
  1070.         (the  first parameter); if found, it simply loads the software in
  1071.         this  area  and  the  second  paramter  is  ignored.   Otherwise,
  1072.         HIGHTSR  searches  for  a  free  area larger than or equal to the
  1073.         resident  requirement  (the  second  parameter),  and  which  has
  1074.         "data"  allocated  immediately  above  it that can be temporarily
  1075.         moved  to create enough free memory to satisfy the initialization
  1076.         requirement.   Such  "data"  includes High-DOS memory used by the
  1077.         advanced   utilities   HIGHDISK,  HIGHEMS3,  HIGHEMS4,  HIGHSPLR,
  1078.  
  1079.  
  1080.  
  1081.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1082.  
  1083.  
  1084.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              16
  1085.  
  1086.  
  1087.         HIGHKEY, and HIGMARK.  
  1088.  
  1089.  
  1090.         4.7 The /LOW Option       
  1091.  
  1092.         As  noted  earlier,  TSR's  and device drivers often require much
  1093.         more  memory  during  installation  as  compared to that required
  1094.         once  they  are  resident.   This  can  prevent loading them into
  1095.         High-DOS  memory  even  if  there's enough for the resident image
  1096.         (but not enough for initialization).  
  1097.  
  1098.         The  /LOW  option  can be used with some TSR's and device drivers
  1099.         to get around this problem: 
  1100.  
  1101.                 HIGHTSR /LOW APPEND 
  1102.  
  1103.                 -or- 
  1104.  
  1105.                 DEVICE=HIGHDRVR.SYS /LOW MYDRIVER.SYS 
  1106.  
  1107.         For  example,  the  first  example above loads a TSR (APPEND.EXE)
  1108.         and  initializes  it  in  low (conventional) memory where there's
  1109.         lots  of  room,  then copies the (smaller) resident image up into
  1110.         upper memory.  
  1111.  
  1112.                 ╔═════════════════════════════════════════════════╗
  1113.                 ║ WARNING: The design of some software may pre-   ║ 
  1114.                 ║ vent the /LOW option from working properly.     ║ 
  1115.                 ║ Don't use it unless necessary, and then only    ║ 
  1116.                 ║ after you have tested it to be sure everything  ║ 
  1117.                 ║ works as expected.  (For example, it will NOT   ║ 
  1118.                 ║ work with PRINT, SHARE, FASTOPEN, MODE, or      ║ 
  1119.                 ║ HyperDisk.)                                     ║ 
  1120.                 ╚═════════════════════════════════════════════════╝
  1121.  
  1122.  
  1123.         4.8 The /RESTRICT Option       
  1124.  
  1125.         When  used,  this  option  restricts  which 128k regions of upper
  1126.         memory  may  be allocated for use with HIGHDRVR and HIGHTSR.  For
  1127.         a  detailed  discussion  of  why  these  regions  may  need to be
  1128.         restricted   and   how  to  control  the  restrictions,  see  the
  1129.         discussion  of the RESTRICT option in the detailed description of
  1130.         LASTBYTE.SYS.  
  1131.  
  1132.  
  1133.         4.9 The /!NOPAUSE Option       
  1134.  
  1135.         All  of  the  utility  programs  (*.EXE files) that come with The
  1136.         Last   Byte  Memory  Manager  support  the  command  line  option
  1137.         /!NOPAUSE.   This  option  eliminates the wait-for-keyboard pause
  1138.  
  1139.  
  1140.  
  1141.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1142.  
  1143.  
  1144.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              17
  1145.  
  1146.  
  1147.         after  an error message is displayed.  When one of these programs
  1148.         terminates  with  an  error  message,  it also returns a non-zero
  1149.         errorlevel  which  can be tested in batch files to make automatic
  1150.         decisions  about  how  to  proceed.  The  /!NOPAUSE option simply
  1151.         makes use of the errorlevel more practical.  
  1152.  
  1153.  
  1154.         4.10 The /NOENV Option (HIGHTSR only)     
  1155.  
  1156.         All  programs,  including  TSR's,  are  allocated  two regions of
  1157.         memory  when  they  are  loaded:  One is the area for the program
  1158.         itself,  and  the  other  is for a copy of the environment.  Most
  1159.         TSR's  don't  make  use  of  their environment, and some actually
  1160.         release it to the operating system rather than hanging onto it.  
  1161.  
  1162.         If  HIGHMEM  finds  an environment block, the corresponding entry
  1163.         in  the  "Description"  column will have the name of the TSR that
  1164.         it  belongs  to  (such as "CLOCK.EXE") followed by the indication
  1165.         "[Env]".    Occassionally,  you  may  see  a  similar  indication
  1166.         "[Dat]";  this  is  a  data block explicitly allocated by the TSR
  1167.         for some unknown purpose.  
  1168.  
  1169.                 ┌─────────────────────────────────────────────────┐
  1170.                 │ The authors of some TSR's attempt to save a bit │
  1171.                 │ of memory by having the TSR eliminate its own   │
  1172.                 │ Program Segment Prefix (PSP) during initializa- │
  1173.                 │ tion.  Doing so makes it impossible to identify │
  1174.                 │ the TSR'senvironment block.  However, this byte │
  1175.                 │ saving mentality will usually mean that the TSR │
  1176.                 │ initialization code also eliminates its environ-│
  1177.                 │ ment block, so this is rarely a problem.        │
  1178.                 └─────────────────────────────────────────────────┘ 
  1179.  
  1180.         If  you  see  a  block labelled "[Env]" in the output of HIGHMEM,
  1181.         then  you  can  use  the /NOENV command line option of HIGHTSR to
  1182.         release this block, even if the TSR didn't: 
  1183.  
  1184.                 HIGHTSR /NOENV CLOCK 
  1185.  
  1186.         As  noted  earlier,  some  TSRs  will  release  their environment
  1187.         anyway  and  so you may be tempted to load them without using the
  1188.         /NOENV  option.   This  usually  will  create  a  "hole" in upper
  1189.         memory  since  the  TSR's  environment is almost always allocated
  1190.         just  below  the TSR itself.  Use of the /NOENV option forces the
  1191.         environment  to  be  allocated down in conventional memory (where
  1192.         it will be reclaimed later) so that the "hole" is eliminated.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1202.  
  1203.  
  1204.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              18
  1205.  
  1206.  
  1207.                   CHAPTER 5 - HIGHUMM.SYS: A UMB PROVIDER     
  1208.  
  1209.  
  1210.         HIGHUMM  is  a  device  driver that creates, and lets application
  1211.         software  use,  Upper  Memory  Blocks (UMB's) in the upper memory
  1212.         area  via  a  standard  protocol that is part of what is known as
  1213.         the  Extended  Memory Specification (XMS).  The number, size, and
  1214.         location  of  UMB  blocks vary widely depending upon the types of
  1215.         hardware adapter cards resident within the upper address space.  
  1216.  
  1217.         If  HIGHUMM  is  installed,  you may use the DOS 5 DEVICEHIGH and
  1218.         LOADHIGH  commands  as  alternatives  to  HIGHDRVR  and  HIGHTSR.
  1219.         HIGHUMM  can  also  be used to advantage with other software such
  1220.         as  4DOS,  BUFFIT,  WAS, and DOSMAX.  These options are discussed
  1221.         in the next chapter.  
  1222.  
  1223.         HIGHUMM may be installed in one of two ways: 
  1224.  
  1225.              1.  If  an XMS driver has not been loaded, HIGHUMM will
  1226.                  become  a  UMB-Only  XMS  device driver.  All other
  1227.                  XMS  functions will return failure, indicating that
  1228.                  the function is not implemented.  For example, 
  1229.  
  1230.                  DEVICE=LASTBYTE.SYS {and any LASTBYTE options}
  1231.                  DEVICE=HIGHUMM.SYS
  1232.  
  1233.              2.  If  an  XMS  driver (such as HIMEM.SYS) has already
  1234.                  been  loaded, HIGHUMM will link into it, adding the
  1235.                  UMB functions.  For example: 
  1236.  
  1237.                  DEVICE=LASTBYTE.SYS {and any options}
  1238.                  DEVICE=HIGHDRVR.SYS C:\DOS\HIMEM.SYS {and any options}
  1239.                  DEVICE=HIGHUMM.SYS
  1240.  
  1241.         Do  not  install  HIGHUMM using either HIGHDRVR or the DEVICEHIGH
  1242.         command; simply use a DEVICE command, as shown above.  
  1243.  
  1244.  
  1245.         5.1 The /REPLACE Option       
  1246.  
  1247.         Although  described  in  the  XMS  specification, most XMS device
  1248.         drivers  so  not implement the UMB functions.  If your XMS driver
  1249.         happens  to  also  be  a  UMB provider, HIGHUMM will abort with a
  1250.         corresponding  error  message.   You  may  then  use the /REPLACE
  1251.         option  on  the HIGHUMM.SYS command line to force it to take over
  1252.         responsibility for providing UMBs.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1262.  
  1263.  
  1264.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              19
  1265.  
  1266.  
  1267.         5.2 The /NOSPLIT Option       
  1268.  
  1269.         HIGHUMM  requires  that  LASTBYTE.SYS  be  installed  first.   It
  1270.         automatically  loads  itself  into  upper memory, putting much of
  1271.         itself  into  Bank-Switch  memory if available.  (You can prevent
  1272.         this by using the /NOSPLIT option.) 
  1273.  
  1274.  
  1275.         5.3 The /RESTRICT Option       
  1276.  
  1277.         When  used,  this  option  restricts  which 128k regions of upper
  1278.         memory  may  be  allocated  for use with HIGHUMM.  For a detailed
  1279.         discussion  of  why  these  regions may need to be restricted and
  1280.         how  to  control  the  restrictions,  see  the  discussion of the
  1281.         RESTRICT option in the chapter on LASTBYTE.SYS.  
  1282.  
  1283.  
  1284.         5.4 Limiting UMB Memory       
  1285.  
  1286.         If  you  want  to limit how much upper memory can be allocated by
  1287.         HIGHUMM  as UMB's, you can specify this in kbytes as an option on
  1288.         the HIGHUMM.SYS command line, as in: 
  1289.  
  1290.                 DEVICE=HIGHUMM.SYS 60 
  1291.  
  1292.         This  provides  a guarantee that some amount of upper memory will
  1293.         never  be  allocated  by  HIGHUMM.SYS,  and  will  thus  still be
  1294.         available for other uses.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1322.  
  1323.  
  1324.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              20
  1325.  
  1326.  
  1327.                     CHAPTER 6 - SPECIAL CONSIDERATIONS       
  1328.  
  1329.  
  1330.         6.1 Specifying Command Line Options with Indirect Files   
  1331.  
  1332.         Some  of the device drivers and utility programs in The Last Byte
  1333.         Memory  Manager  package  may  require  lots  of  options  to  be
  1334.         specified.   To  avoid  lengthly command lines, these options can
  1335.         be  placed  in  a text file if the name of that file is specified
  1336.         on  the command line preceded by the '@' character.  For example,
  1337.         you'd  begin  to  run out of room if all of the following options
  1338.         were required on the LASTBYTE.SYS command line: 
  1339.  
  1340.         PHYSICAL=82C302 NAME=Joe_Blow KEY=12345678 APPEND=64 DOS=F000:32 ?
  1341.  
  1342.         As  an  alternative,  create  a  corresponding  text  file called
  1343.         LASTBYTE.CFG (for example), and put the options into it: 
  1344.  
  1345.                 PHYSICAL=82C302   NAME=Joe_Blow   KEY=12345678  APPEND=64
  1346.                 DOS=F000:32 ? 
  1347.  
  1348.         (Carriage returns in the indirect file are treated as blanks) 
  1349.  
  1350.         Then the CONFIG.SYS command line becomes simply: 
  1351.  
  1352.                 DEVICE=LASTBYTE.SYS @LASTBYTE.CFG 
  1353.  
  1354.         In  effect,  options  taken  from  the indirect file are inserted
  1355.         into  the  command  line,  so  that  one  or  more  indirect file
  1356.         references  may  be  placed  among  other  options on the command
  1357.         line: 
  1358.  
  1359.                 DEVICE=LASTBYTE.SYS ? @TLB.1 A=32 @C:\TLB\TLB.2 
  1360.  
  1361.         Indirect  files  may  be  used  on the command line of any device
  1362.         driver  (.SYS  files) or utility program (.EXE files) in The Last
  1363.         Byte Memory Manager package.  
  1364.  
  1365.  
  1366.         6.2 Using the DOS=F000:32 Option      
  1367.  
  1368.         The  64k  region  starting  at paragraph address F000 is the Bios
  1369.         ROM.   Many  computers  use  a  Bios  ROM  developed  by  AMI  or
  1370.         Phoenix.   The  more  recent  versions  of  these ROMs devote the
  1371.         first  32k  to  initialization  code that is only used during the
  1372.         boot  sequence, and use the second 32k for that portion that must
  1373.         remain  available  at  all  times.  (This seems to be true of the
  1374.         Award Bios as well, but has not been verified.) 
  1375.  
  1376.         By  the time your computer gets to the point in its boot sequence
  1377.         where  it  is  installing  the  device  drivers (e.g., when it is
  1378.  
  1379.  
  1380.  
  1381.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1382.  
  1383.  
  1384.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              21
  1385.  
  1386.  
  1387.         installing  LASTBYTE.SYS),  the  Bios  initialization  code is no
  1388.         longer  needed.   If  you  have  one of these AMI or Phoenix Bios
  1389.         chips,  you  can  capture  another 32k of upper memory by using a
  1390.         DOS=F000:32 option on the LASTBYTE.SYS command line.  
  1391.  
  1392.         Of  course,  whenever  you  press Ctrl-Alt-Del to do a warm boot,
  1393.         the  ROM  Bios  initialization  code  needs to be executed again!
  1394.         And  that could be a problem since you've effectively disabled it
  1395.         with   the   DOS=F000:32   option!    Fortunately,   LASTBYTE.SYS
  1396.         intercepts   all   keyboard  input  and  keeps  an  eye  out  for
  1397.         Ctrl-Alt-Del.   When it sees the warm boot request, it will force
  1398.         a  cold  boot  if  you've  used  the  DOS=F000:32  option.   This
  1399.         re-enables  the  entire  64k  Bios ROM so that the initialization
  1400.         code  is  reactivated  before  the processor tries to execute it.
  1401.         Otherwise a normal warm boot is used.  
  1402.  
  1403.                 ╔═════════════════════════════════════════════════╗
  1404.                 ║ WARNING: Some TSRs intercept keyboard interrupt ║ 
  1405.                 ║ 9, and jump directly into a fixed location in   ║ 
  1406.                 ║ the Bios ROM where the Warm Boot code begins.   ║ 
  1407.                 ║ Unfortunately, this will bypass LASTBYTE.SYS's  ║ 
  1408.                 ║ attempt to turn the ROM back on.                ║ 
  1409.                 ╚═════════════════════════════════════════════════╝
  1410.  
  1411.  
  1412.         6.3 Video Display RAM above 640k     
  1413.  
  1414.         In  general,  the  region A0000-BFFFF is the video display buffer
  1415.         area.   Various  display  adapters  (MDA, Hercules, CGA, EGA, and
  1416.         VGA)  typically  use only a small subset of this space.  The Last
  1417.         Byte  Memory  Manager  automatically  senses  what  kind of video
  1418.         display adapter is installed and reserves the space it uses.  
  1419.  
  1420.         The  MDA  (monochrome)  adapter  implements  a  4k text buffer at
  1421.         B0000-B0FFF,  and  the  CGA (color) adapter implements a 16k text
  1422.         and  graphics  buffer  at B8000-BBFFF.  The Hercules adapter uses
  1423.         the  entire 64k region at B0000-BFFFF in graphics modes, although
  1424.         only  the  first  4k of this space (B0000-B0FFF) is used for text
  1425.         modes.  
  1426.  
  1427.         The  EGA  and  VGA adapters have a 64k graphics display buffer at
  1428.         A0000-AFFFF,  and a 32k text display buffer at either B0000-B7FFF
  1429.         (when  used  with  a monochrome display), or at B8000-BFFFF (when
  1430.         used with a color display).  
  1431.  
  1432.         The  following  chart summarizes these regions as well as some of
  1433.         the  DOS  and  APPEND  optons  you  may  be  able  to  use on the
  1434.         LASTBYTE.SYS  command  line  with these adapters.  Unfortunately,
  1435.         the  ROM  bios  on  a  (very)  few  PC's may write into locations
  1436.         outside  the  area reserved for a particular type of display.  If
  1437.         you  decide  this  is  happening, you may need to add one or more
  1438.  
  1439.  
  1440.  
  1441.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1442.  
  1443.  
  1444.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              22
  1445.  
  1446.  
  1447.         EXCLUDE  options to the LASTBYTE.SYS command line to disable that
  1448.         region.  
  1449.  
  1450.              LASTBYTE.SYS Command Line Options for Display Adapters
  1451.  
  1452.              Adapter         Reserved        DOS         APPEND
  1453.              -------         --------        -------     -------
  1454.              CGA             B800:16                     96
  1455.              MDA             B000:4                      64
  1456.              Hercules        B000:64         B400:48     64
  1457.  
  1458.              EGA/VGA         A000:64         BC00:16     96
  1459.              w/Color         B800:32 
  1460.              Display
  1461.  
  1462.              EGA/VGA         A000:64         B400:16     64
  1463.              w/Mono          B000:32
  1464.              Display
  1465.  
  1466.              VGA Bios        C000:32         C600:8 (see next section)
  1467.  
  1468.              Notes: (1) Windows 3.0 may write in the region B000-BFFF.
  1469.                     (2) The ability to use the DOS and APPEND options 
  1470.                         depends on the availability of memory in the
  1471.                         indicated region.
  1472.  
  1473.  
  1474.         6.4 Video Adapter Bios ROMs      
  1475.  
  1476.         MDA  and CGA use the standard ROM Bios; they have no ROM of their
  1477.         own.   EGA  and  VGA adapters, however, incorporate their own ROM
  1478.         Bios  chip  right on the adapter card.  LASTBYTE.SYS successfully
  1479.         recognizes these ROMs, but has to treat VGA in a special manner: 
  1480.  
  1481.         The  VGA  adapter  made  by  IBM  has  a  24k  ROM  installed  at
  1482.         C0000-C5FFF,  which  means  that  the 8k at C6000-C7FFF should be
  1483.         usable.   Although  almost  all  VGA  clones have a ROM signature
  1484.         that  indicates  24k,  many of them use the C6000-C7FFF space for
  1485.         ROM  Bios  or  RAM  extensions  that  provide  their  "Super VGA"
  1486.         features.    In   particular,   the  Video7  and  Paradise  VGA's
  1487.         incorporate  their  own  RAM from C6000-C7FFF.  (This may also be
  1488.         true  of  other  VGA boards that uses a VLSI chip manufactured by
  1489.         Chips   and  Technologies,  Tseng  Labs,  Paradise,  or  Headland
  1490.         Technologies.)    For   this   reason,  when  LASTBYTE.SYS  finds
  1491.         anybody's  VGA  adapter, it automatically assumes that there is a
  1492.         32k ROM at C0000-C7FFF.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1502.  
  1503.  
  1504.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              23
  1505.  
  1506.  
  1507.         6.5 LASTBYTE.SYS and Expanded Memory      
  1508.  
  1509.         Expanded  memory always has an associated device driver.  If that
  1510.         driver  is loaded before LASTBYTE.SYS in the CONFIG.SYS file (and
  1511.         if  the  hardware is enabled) LASTBYTE.SYS will recognize the 64k
  1512.         EMM  page frame of the expanded memory and do the right thing: It
  1513.         will  treat the page frame like any other adapter ram and disable
  1514.         the  motherboard RAM that falls in the same address space so that
  1515.         it  doesn't  interfere  with the page frame.  For example, if the
  1516.         EMM  driver is loaded first, LASTBYTE.SYS will report the 64k EMM
  1517.         page frame as "EMS Page Frame".  
  1518.  
  1519.         This  works  fine,  of  course,  but loading the EMM driver first
  1520.         precludes  the  possibility  of loading it into upper memory.  To
  1521.         get  the  EMM  driver  into  upper  memory  means that it must be
  1522.         loaded after LASTBYTE.SYS, but you must be careful! 
  1523.  
  1524.         If   LASTBYTE.SYS  is  loaded  first,  the  page  frame  will  be
  1525.         recognized only in two cases: 
  1526.  
  1527.              1.  The   page   frame  used  by  the  expanded  memory
  1528.                  controller  built into some memory controller chips
  1529.                  will  be  recognized  and  reported  as  "EMS  Page
  1530.                  Frame".  
  1531.  
  1532.              2.  The  page  frame of a REAL expanded memory board is
  1533.                  (if  enabled)  recognized  and reported as "Adapter
  1534.                  RAM".  
  1535.  
  1536.         In either case, LASTBYTE.SYS will not use that memory space.  
  1537.  
  1538.                 ╔═════════════════════════════════════════════════╗
  1539.                 ║ WARNING: Some EMS boards must be enabled by     ║ 
  1540.                 ║ their device driver before they respond as      ║ 
  1541.                 ║ read/write memory.  This prevents LASTBYTE.SYS  ║ 
  1542.                 ║ from recognizing them, and you may need a       ║ 
  1543.                 ║ BANKSWITCH option to keep LASTBYTE.SYS from     ║ 
  1544.                 ║ using the page frame memory space.              ║ 
  1545.                 ╚═════════════════════════════════════════════════╝
  1546.  
  1547.         If  you  don't  have  an  expanded  memory board, but have used a
  1548.         device  driver  (like EMM386) that EMULATES expanded memory using
  1549.         extended  memory,  then LASTBYTE.SYS will not know about the page
  1550.         frame  unless  the  emulator is loaded first.  If LASTBYTE.SYS is
  1551.         loaded  first,  then  you  must  use  a EXCLUDE (not BANKSWITCH!)
  1552.         command  line  option  of  LASTBYTE.SYS  to  reserve a 64k region
  1553.         where  the  emulated  page  frame can be placed.  For EMM386, the
  1554.         page  frame  must  be positioned at C000, C400, C800, CC00, D000,
  1555.         D400, D800, DC00, or E000.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1562.  
  1563.  
  1564.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              24
  1565.  
  1566.  
  1567.         6.6 Fine-Tuning your Adapter Hardware Configuration     
  1568.  
  1569.         Many  adapter  cards  occupy  some  portion  of the upper address
  1570.         space.   Some  of  these  cards,  such  as SCSI Disk Controllers,
  1571.         often  have  DIP  switches or jumpers that can be used to set the
  1572.         address space they occupy to one of a few alternatives.  
  1573.  
  1574.         If  the memory map displayed by HIGHMEM is fragmented because one
  1575.         of  these adapters sits between two "....DOS Free" areas, you may
  1576.         want  to  try  to  reposition  the address space occupied by that
  1577.         adapter  by  modifying  the  DIP switch or jumper settings on the
  1578.         card.  
  1579.  
  1580.         Having  one  large  free  memory block is better than two smaller
  1581.         ones  because TSR's and device drivers almost always require more
  1582.         memory  during  initialization  than  once  installed.   In other
  1583.         words,  neither of the two smaller blocks may be large enough for
  1584.         the installation, but might if they were combined.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1622.  
  1623.  
  1624.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              25
  1625.  
  1626.  
  1627.                     CHAPTER 7 - USE WITH OTHER SOFTWARE     
  1628.  
  1629.  
  1630.         7.1 Microsoft's FASTOPEN and MODE programs     
  1631.  
  1632.         The  FASTOPEN  and  MODE programs that come with MS-DOS are TSR's
  1633.         and  as  such may be loaded into upper memory with HIGHTSR.  Once
  1634.         installed,  each  requires  very  little memory, something on the
  1635.         order  of  10k  or  less.  However, neither will install unless a
  1636.         lot  of  memory is available - approximately 50-90k.  (The actual
  1637.         requirement  depends  partly  on  command  line  options; you can
  1638.         determine the requirement using the /SIZE option of HIGHTSR.) 
  1639.  
  1640.                 ╔═════════════════════════════════════════════════╗
  1641.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1642.                 ║ with FASTOPEN or MODE - it won't work and could ║ 
  1643.                 ║ damage data on your disk!                       ║ 
  1644.                 ╚═════════════════════════════════════════════════╝
  1645.  
  1646.         The  worst  part  is  that  if  FASTOPEN  fails to install itself
  1647.         successfully,  it  doesn't  issue  any  error message - it simply
  1648.         doesn't   display   the   normal   "FASTOPEN  installed"  sign-on
  1649.         message.   Moral:  Let  FASTOPEN and MODE be the first TSR's that
  1650.         are  installed into High Memory in your AUTOEXEC.BAT file so that
  1651.         they get access to the maximum amount of memory.  
  1652.  
  1653.         The  second  hassle  with  these two TSR's is that they cannot be
  1654.         removed  by  using  the advanced utilities HIGHMARK and HIGHUNDO.
  1655.         Evidently  they modify memory other than that tracked by HIGHMARK
  1656.         (the interrupt vector table and that memory allocated to them).  
  1657.  
  1658.  
  1659.         7.2 Microsoft's SHARE program       
  1660.  
  1661.         MS-DOS  4  installs the SHARE program automatically if you have a
  1662.         hard  disk which is greater than 32 MB in a single partition.  It
  1663.         does  this  without  asking  because  it is otherwise possible to
  1664.         corrupt  the  data on the disk when running programs that use the
  1665.         old File Control Block (FCB) approach to access files.  
  1666.  
  1667.         Unfortunately,  some  internal parts of MS-DOS 4.0 also still use
  1668.         FCB's!   So  don't  try  to  prevent  SHARE  from being loaded by
  1669.         removing  it  from  your system!  If MS-DOS can't find it, you'll
  1670.         get  a  warning message during the boot saying that "SHARE should
  1671.         be   loaded   for   large  media".   You  could  load  it  during
  1672.         AUTOEXEC.BAT   processing,  but  you'll  still  get  the  warning
  1673.         because the check occurs during CONFIG.SYS processing.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1682.  
  1683.  
  1684.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              26
  1685.  
  1686.  
  1687.                 ┌─────────────────────────────────────────────────┐
  1688.                 │ NOTE: Version 5 of MS-DOS has corrected this    │ 
  1689.                 │ problem and no longer loads SHARE automatically │ 
  1690.                 │ regardless of the size of your hard disk.       │ 
  1691.                 └─────────────────────────────────────────────────┘ 
  1692.  
  1693.         So  how  can  you load this TSR into upper memory without getting
  1694.         the   warning?    MS-DOS   recently   introduced  the  "INSTALL="
  1695.         directive  that  allows  TSR's  to be installed during CONFIG.SYS
  1696.         processing.   Programs  that Microsoft suggests be loaded in this
  1697.         manner include FASTOPEN, KEYB, NLSFUNC, and SHARE.  For example: 
  1698.  
  1699.                 INSTALL=C:\DOS\SHARE.EXE 
  1700.  
  1701.         The  above  command,  however,  causes SHARE to be loaded down in
  1702.         conventional memory.  to get it into upper memory, use: 
  1703.  
  1704.                 INSTALL=HIGHTSR.EXE C:\DOS\SHARE.EXE 
  1705.  
  1706.                 ╔═════════════════════════════════════════════════╗
  1707.                 ║ WARNING: Do NOT use the /LOW option of HIGHTSR  ║ 
  1708.                 ║ with SHARE - it won't work and could damage     ║ 
  1709.                 ║ data on your disk!                              ║ 
  1710.                 ╚═════════════════════════════════════════════════╝
  1711.  
  1712.  
  1713.         7.3 Microsoft's MS-DOS 5.0       
  1714.  
  1715.         With   the  introduction  of  MS-DOS  5.0,  Microsoft  has  added
  1716.         extensive  support  for  loading software into high memory.  This
  1717.         includes  not  only  device drivers and TSRs, but also the MS-DOS
  1718.         disk  buffers,  the master environment, and most of the operating
  1719.         system itself.  
  1720.  
  1721.         Most  of  this  capability  requires  the  use of an Upper Memory
  1722.         Block   (UMB)   provider   such   as   Key   Software   Products'
  1723.         HIGHUMM.SYS.   Although  the  MS-DOS  5.0  version  of EMM386 now
  1724.         provides  such  support, there are several disadvantages to using
  1725.         it  instead  of  The  Last  Byte  Memory Manager to load software
  1726.         high: 
  1727.  
  1728.              1.  EMM386   requires   a   386  or  better  processor.
  1729.                  (HIGHUMM does not.) 
  1730.  
  1731.              2.  EMM386  requires  that  HIMEM.SYS  be loaded first.
  1732.                  (HIGHUMM  does  not.  However, HIMEM is also needed
  1733.                  to  load  the operating system itself into extended
  1734.                  memory;  The Last Byte Memory Manager allows you to
  1735.                  load HIMEM into upper memory using HIGHDRVR.) 
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1742.  
  1743.  
  1744.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              27
  1745.  
  1746.  
  1747.              3.  Using  HIMEM and EMM386 as the basis of UMB support
  1748.                  requires  that  both  be  loaded  into conventional
  1749.                  memory.  
  1750.  
  1751.              4.  EMM386  puts  the  processor  into  protected mode,
  1752.                  adding  an  instruction  execution  time penalty of
  1753.                  about 5%.  
  1754.  
  1755.         There  are  two  basic  approaches  that  you  can  take  to load
  1756.         software  into  upper  memory  using MS-DOS 5.0 and The Last Byte
  1757.         Memory  Manager.   The  first  of these is to install HIGHUMM and
  1758.         use  the  'DEVICEHIGH'  and  'LOADHIGH'  commands  introduced  in
  1759.         MS-DOS 5.0; the other is to use HIGHDRVR and HIGHTSR.  
  1760.  
  1761.         We  recommend  the  latter  approach because HIGHDRVR and HIGHTSR
  1762.         provide  a  richer  set  of options for controlling the load high
  1763.         process.  
  1764.  
  1765.  
  1766.         7.3.1 Using DEVICEHIGH and LOADHIGH      
  1767.  
  1768.         To  use  this  approach,  your CONFIG.SYS file should contain the
  1769.         following lines: 
  1770.  
  1771.                 DOS=HIGH,UMB 
  1772.                 DEVICE=LASTBYTE.SYS {and any options} 
  1773.                 DEVICE=HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1774.                 DEVICE=HIGHUMM.SYS {and any options} 
  1775.  
  1776.         Then  you can use the MS-DOS 5.0 DEVICEHIGH command in additional
  1777.         lines  of  your CONFIG.SYS file to load your other device drivers
  1778.         into upper memory, as in: 
  1779.  
  1780.                 DEVICEHIGH={device driver to be loaded high} 
  1781.                 DEVICEHIGH={device driver to be loaded high} 
  1782.                         . . .  
  1783.                 DEVICEHIGH={device driver to be loaded high} 
  1784.  
  1785.         With  this  CONFIG.SYS file, your AUTOEXEC.BAT file may load TSRs
  1786.         high using the MS-DOS 5.0 LOADHIGH command as in: 
  1787.  
  1788.                 LOADHIGH C:\DOS\PRINT 
  1789.  
  1790.  
  1791.         7.3.2 Using HIGHDRVR and HIGHTSR      
  1792.  
  1793.         The  second approach is to use the HIGHDRVR and HIGHTSR utilities
  1794.         of  The  Last  Byte  Memory Manager in the normal manner.  To use
  1795.         this  approach, your CONFIG.SYS file should contain the following
  1796.         lines: 
  1797.  
  1798.  
  1799.  
  1800.  
  1801.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1802.  
  1803.  
  1804.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              28
  1805.  
  1806.  
  1807.                 DOS=HIGH 
  1808.                 DEVICE=LASTBYTE.SYS {and any options} 
  1809.                 DEVICE=HIGHDRVR.SYS C:\DOS\HIMEM.SYS 
  1810.  
  1811.         Then  you can use HIGHDRVR in additional lines of your CONFIG.SYS
  1812.         file to load your other device drivers into upper memory, as in: 
  1813.  
  1814.                 DEVICE=HIGHDRVR.SYS {device driver to be loaded high} 
  1815.                 DEVICE=HIGHDRVR.SYS {device driver to be loaded high} 
  1816.                         . . .  
  1817.                 DEVICE=HIGHDRVR.SYS {device driver to be loaded high} 
  1818.  
  1819.         With  this  CONFIG.SYS  file,  your AUTOEXEC.BAT file should load
  1820.         TSRs high using HIGHTSR as in: 
  1821.  
  1822.                 HIGHTSR C:\DOS\PRINT 
  1823.  
  1824.  
  1825.         7.4 Microsoft Windows        
  1826.  
  1827.         In  general,  The  Last  Byte Memory Manager has a high degree of
  1828.         compatibility  with  Windows  3.0  and  3.1.   If  you are having
  1829.         trouble  running  Windows,  first  be  sure  that  your system is
  1830.         properly  configured so that it runs without The Last Byte Memory
  1831.         Manager  installed.   If  you  have isolated the problem to their
  1832.         combination,  then perhaps the following information will help to
  1833.         correct the problem: 
  1834.  
  1835.  
  1836.         7.4.1 Modifying the Windows SYSTEM.INI File     
  1837.  
  1838.         With  Windows  running  in  386  enhanced  mode, LASTBYTE.SYS and
  1839.         Windows  will  both  try  to  use  the  upper  memory  area, thus
  1840.         creating  a  conflict.   To  avoid  the  conflict,  you  must ask
  1841.         Windows  to  not  use  this  region.  This can be done with a few
  1842.         configuration  options  in  the  [386Enh]  section of the Windows
  1843.         SYSTEM.INI file: 
  1844.  
  1845.                   EMMExclude=A000-FFFF
  1846.                   HighFloppyReads=no
  1847.                   DualDisplay=yes
  1848.                   SystemROMBreakPoint=no
  1849.  
  1850.         If  you  have  used the EXCLUDE option of LASTBYTE.SYS to disable
  1851.         any  region  of  the upper memory, then Windows may be told it is
  1852.         ok  to  use  that  area.   For example, if LASTBYTE.SYS is loaded
  1853.         using the line: 
  1854.  
  1855.                 DEVICE=LASTBYTE.SYS EXCLUDE=D000:64 
  1856.  
  1857.         then  you may use the following configuration option (in addition
  1858.  
  1859.  
  1860.  
  1861.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1862.  
  1863.  
  1864.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              29
  1865.  
  1866.  
  1867.         to the EMMExclude option above) in your SYSTEM.INI file: 
  1868.  
  1869.                 EMMInclude=D000-DFFF 
  1870.  
  1871.         The  EMMInclude  option  will take precedence over the EMMExclude
  1872.         option when the two overlap, as above.  
  1873.  
  1874.  
  1875.         7.4.2 Positioning an EMS Page Frame     
  1876.  
  1877.         If  you  are using the Real or Standard modes of Windows, you may
  1878.         have  installed  an EMS device driver for those applications that
  1879.         need  expanded  memory.  In an attempt to reduce fragmentation of
  1880.         upper  memory, it is useful to position the EMS Page Frame either
  1881.         at  the  bottom  or  top  of  an  otherwise empty region of upper
  1882.         memory.   However,  if  you  have  used the DOS=F000:32 option to
  1883.         gain  another  32k  of  DOS  memory, don't position your EMS Page
  1884.         Frame  at  E800  -  Windows  will not run with it any higher than
  1885.         E000.  
  1886.  
  1887.         The  Enhanced  386  mode  of  Windows  will automatically emulate
  1888.         expanded   memory   for   those  applications  that  require  it.
  1889.         Unfortunately,   Windows   ignores   the  EMMExclude  option  and
  1890.         positions  the  EMS  page frame in upper memory.  If the same 64k
  1891.         area  is used by The Last Byte Memory Manager for something else,
  1892.         your   system   may   hang.   To  correct  the  problem,  add  an
  1893.         "EMSPageFrame=nnnn"  option  in  your  SYSTEM.INI  file  to  tell
  1894.         Windows   where   to   put  the  page  frame,  combined  with  an
  1895.         "EXCLUDE=nnnn:64"  option  on  the  LASTBYTE.SYS  command line to
  1896.         keep it from using this area.  
  1897.  
  1898.  
  1899.         7.4.3 "Unsupported Data Configuration"       
  1900.  
  1901.         The  386 Enhanced mode of Windows 3.0 (not 3.1) has a restriction
  1902.         that  it  cannot  run  when  certain  types of software have been
  1903.         loaded  high.   When  this  happens,  Windows  will terminate and
  1904.         display  the  error  message,  "Unsupported  Data Configuration".
  1905.         This  only  happens  in  386 Enhanced mode, and is not related in
  1906.         particular to use of The Last Byte Memory Manager.  
  1907.  
  1908.         Device  drivers  that are known to load high without this problem
  1909.         include  HIMEM.SYS,  MOUSE.SYS, SETVER.SYS, ANSI.SYS, and all the
  1910.         Key  Software Products device drivers.  A device driver and a TSR
  1911.         known  to  cause this problem are EGA.SYS and DOSKEY.COM.  If you
  1912.         are  experiencing  this error message, you can either run Windows
  1913.         in   another   mode,   or   try  modifying  your  CONFIG.SYS  and
  1914.         AUTOEXEC.BAT files to locate and remove the offending software.  
  1915.  
  1916.         Microsoft   has  removed  this  restriction  in  version  3.1  of
  1917.         Windows.  
  1918.  
  1919.  
  1920.  
  1921.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1922.  
  1923.  
  1924.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              30
  1925.  
  1926.  
  1927.  
  1928.  
  1929.         7.4.4 HIGHMEM and Windows 386 Enhanced Mode    
  1930.  
  1931.         MS-DOS  applications  run from inside Windows 3.0 are given their
  1932.         own   "virtual"   address  space  of  640k.   Windows  tells  the
  1933.         processor   to  map  memory  references  in  this  space  to  the
  1934.         particular  640k  of  physical memory which has been allocated to
  1935.         the  application.   References  outside this range are considered
  1936.         invalid  and  thus  return  garbage.   Since HIGHMEM is a program
  1937.         that  inspects  upper  memory  between 640k and 1 meg, there's no
  1938.         way  it  can  execute  properly  in  this  context.  HIGHMEM will
  1939.         behave normally outside of Windows.  
  1940.  
  1941.  
  1942.         7.5 HyperWare's HyperDisk        
  1943.  
  1944.         HyperDisk  is  a  shareware disk caching utility.  If you use its
  1945.         "XS"  option  to load itself into the 48k block starting at E400,
  1946.         be  sure  to  exclude  this area by using the following option on
  1947.         the LASTBYTE.SYS command line: 
  1948.  
  1949.                 DEVICE=LASTBYTE.SYS EXC=E400:48 
  1950.  
  1951.         A  better  approach  is  to  use  either  HIGHDRVR or HIGHTSR (as
  1952.         appropriate)  to  load  HyperDisk  high (without HyperDisk's "XS"
  1953.         option).   This  method  guarantees  that  the  minimum amount of
  1954.         upper memory will be used.  
  1955.  
  1956.         HyperDisk  can  be  downloaded  from  HyperWare's  BBS  at  (615)
  1957.         864-6871, or obtained directly from: 
  1958.  
  1959.                 HyperWare 
  1960.                 RR#1, Box 91 
  1961.                 Pall Mall, TN 38577 
  1962.                 Voice: (615) 864-6868 
  1963.                 FAX: (615) 864-6870 
  1964.  
  1965.  
  1966.         7.6 J.P. Software's 4DOS       
  1967.  
  1968.         4DOS  is  a  shareware  replacement for COMMAND.COM.  HIGHUMM.SYS
  1969.         may  be  used  to  move the 4DOS command processor and its master
  1970.         environment  into  "Upper  Memory  Blocks"  (UMB's)  in the upper
  1971.         memory  area,  thus  reducing  the  amount of conventional memory
  1972.         below 640k used by 4DOS from 3.4k bytes to 256 bytes.  
  1973.  
  1974.         First  you  must install HIGHUMM.SYS as described earlier in this
  1975.         manual.   Then  add  a  "SHELL="  line  to  CONFIG.SYS  for 4DOS,
  1976.         including  the  options  /U (to place the command processor in an
  1977.         UMB)  and  /E:512U  (to  place the master environment in an UMB).
  1978.  
  1979.  
  1980.  
  1981.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  1982.  
  1983.  
  1984.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              31
  1985.  
  1986.  
  1987.         The  value  512  is of course only an example - other environment
  1988.         sizes  may  be  specified.   You  may  also want to specify these
  1989.         options   for   secondary   shells  in  the  4DSHELL  environment
  1990.         variable.  Consult the 4DOS documentation for further details.  
  1991.  
  1992.         4DOS  may  be downloaded from Channel 1 BBS at (617) 354-8873, or
  1993.         obtained directly from: 
  1994.  
  1995.                 J.P. Software             CompuServe: 75300,210 
  1996.                 P.O. Box 1470             BIX: "trawson" 
  1997.                 E. Arlington, MA 02174    Internet, Bitnet, etc: 
  1998.                 Voice: (617) 646-3975       75300.210@compuserve.com 
  1999.                 Fax: (617) 646-0904 
  2000.  
  2001.  
  2002.         7.7 David Hamilton's BUFFIT       
  2003.  
  2004.         There's  a very nice shareware scroll-back TSR called BUFFIT that
  2005.         saves  lines  of  text that have been scrolled off the top of the
  2006.         screen  and allows you to pull them back down for review.  One of
  2007.         the  advantages  of  version  3.0  and later of BUFFIT is that it
  2008.         will  load  itself  entirely  into a UMB provided by HIGHUMM.SYS,
  2009.         thus using no conventional memory at all.  
  2010.  
  2011.         To  install  BUFFIT into upper memory, first you must install the
  2012.         HIGHUMM.SYS  device  driver  by  inserting the following lines in
  2013.         your CONFIG.SYS file: 
  2014.  
  2015.                 DEVICE=LASTBYTE.SYS {and any LASTBYTE options} 
  2016.                 DEVICE=HIGHUMM.SYS 
  2017.  
  2018.         Then  all  you  have to do is reboot your computer and run BUFFIT
  2019.         from  the  command  line,  or  else  add  it to your AUTOEXEC.BAT
  2020.         file.  
  2021.  
  2022.         BUFFIT  is  available  from  a number of BBS's, usually under the
  2023.         filename BUFFIT30.ZIP.  
  2024.  
  2025.  
  2026.         7.8 Charles Lazo's WAS       
  2027.  
  2028.         On  a  computer  with  no  expanded memory, you might want to use
  2029.         HIGHEMS3  to  provide  some  Expanded  Memory  for Charles Lazo's
  2030.         scroll-back  TSR, WAS.COM.  This utility saves lines of text that
  2031.         have  been  scrolled  off the top of the screen and allows you to
  2032.         pull  them  back down for review.  WAS is available from a number
  2033.         of BBS's, usually under the filename WAS062.ZIP.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2042.  
  2043.  
  2044.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              32
  2045.  
  2046.  
  2047.         7.9 Philip Gardner's DOSMAX       
  2048.  
  2049.         DOSMAX  is  a  set  of  utilities  that  compliment The Last Byte
  2050.         Memory  Manager  by moving all of the DOS "subsegments" (BUFFERS,
  2051.         FILES,  FCBS,  LASTDRIVE, STACKS, etc.), COMMAND.COM, and the DOS
  2052.         kernel  into  Upper  Memory  Blocks  provided by HIGHUMM.  Set up
  2053.         your CONFIG.SYS file as follows: 
  2054.  
  2055.              DOS=HIGH
  2056.              DEVICE=C:\DOSMAX\STOPMAX.SYS
  2057.              DEVICE=C:\TLBMM\LASTBYTE.SYS
  2058.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOSMAX\DOSMAX.EXE
  2059.              DEVICE=C:\TLBMM\HIGHDRVR.SYS C:\DOS\HIMEM.SYS
  2060.              DEVICE=C:\TLBMM\HIGHUMM.SYS /REPLACE
  2061.  
  2062.         If  you  wish,  you  can  eliminate  the  use  of  STOPMAX.SYS by
  2063.         appending the /I+ or /B+ option to the DOSMAX.EXE command line.  
  2064.  
  2065.         Using     the     full     pathname    of    DOSMAX.EXE    (i.e.,
  2066.         C:\DOSMAX\DOSMAX.EXE)  is very important.  The resident stub must
  2067.         be  able to exec DOSMAX.EXE at the proper time, and this requires
  2068.         the full path to DOSMAX.EXE.  
  2069.  
  2070.         DOSMAX may be obtained from: 
  2071.  
  2072.              Philip B. Gardner
  2073.              10461 Lever St.
  2074.              Circle Pines, MN 55014
  2075.              (612) 785-9439
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2102.  
  2103.  
  2104.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              33
  2105.  
  2106.  
  2107.                         APPENDIX 1 - HOW TO REACH US     
  2108.  
  2109.  
  2110.         The  Key  Software Products telephone (415-364-9847) is shared by
  2111.         our  BBS,  FAX,  and  voice  mail  answering system.  Approximate
  2112.         hours of operation are: 
  2113.  
  2114.                   Voice mail and FAX: 8am - 5pm PST (weekdays)
  2115.                  BBS system: 5pm - 8am PST (24 hrs on weekends)
  2116.            BBS Parameters: 1200/2400/9600/14400 baud (v.32bis/v.42bis)
  2117.                              8 data bits, No Parity
  2118.  
  2119.         If  your call is answered by the voice mail system, it can take a
  2120.         message   that will be automatically forwarded to someone who can
  2121.         return  your  call as soon as possible.  In addition, it offers a
  2122.         touch-tone driven menu of useful information about our product.  
  2123.  
  2124.         To send us a FAX, follow the following steps: 
  2125.  
  2126.              Step 1:  You'll  be  greeted  by  out Voice Mail system
  2127.                       which  will  prompt you to press 1 if you have
  2128.                       a touch-tone phone.  
  2129.  
  2130.              Step 2:  Press 1.  You'll then hear a menu that prompts
  2131.                       you to press 5 to send a FAX.  
  2132.  
  2133.              Step 3:  Press  5.  In a few seconds, you'll hear a FAX
  2134.                       tone; press start on your FAX machine.  
  2135.  
  2136.         That's  all  there  is to it.  Be sure to include your FAX number
  2137.         for  the  reply  which  will  be  sent  back to you in one or two
  2138.         days.  
  2139.  
  2140.         If  you have access to electronic mail, you can send us a message
  2141.         via any of the following: 
  2142.  
  2143.         On COMPUSERVE, send mail to:
  2144.  
  2145.                 >Internet:ksp!dan.lewis@ames.arc.nasa.gov
  2146.  
  2147.         On PRODIGY, send mail to: VGDC59A
  2148.  
  2149.         On INTERNET, UUCP, or BITNET, send mail to:
  2150.  
  2151.                 ksp!dan.lewis@ames.arc.nasa.gov
  2152.  
  2153.         On FIDONET, send mail to: UUCP
  2154.  
  2155.                 1st line of message: To: ksp!dan.lewis@ames.arc.nasa.gov
  2156.  
  2157.         On MCI,
  2158.  
  2159.  
  2160.  
  2161.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2162.  
  2163.  
  2164.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              34
  2165.  
  2166.  
  2167.  
  2168.                  At the "To:" prompt enter: DAN LEWIS (EMS)
  2169.                 At the "EMS:" prompt enter: Internet
  2170.                 At the "Mbx:" prompt enter: ksp!dan.lewis@ames.arc.nasa.gov
  2171.  
  2172.         On APPLELINK, send mail to:
  2173.  
  2174.                 ksp!dan.lewis@ames.arc.nasa.gov@dasnet#
  2175.  
  2176.         On TELENET's Telemail Service:
  2177.  
  2178.                 Send to: [INTERMAIL/USCISI]TELEMAIL/USA
  2179.                 1st line of message: Forward: ARPA
  2180.                 2nd line of message: To: ksp!dan.lewis@ames.arc.nasa.gov
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2222.  
  2223.  
  2224.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              35
  2225.  
  2226.  
  2227.                       APPENDIX 2 - ACKNOWLEDGEMENTS        
  2228.  
  2229.  
  2230.         The  Last  Byte  Memory  Manager  wouldn't  exist without all the
  2231.         companies  that  manufacture  the  shadow  ram  memory controller
  2232.         chips,  and  who  have  provided techinical information on how to
  2233.         program  their  configuration registers.  If you know of a memory
  2234.         controller  chip  we  haven't included, please let us know and we
  2235.         will try to add it.  
  2236.  
  2237.         The  Last  Byte  Memory  Manager consists of almost a megabyte of
  2238.         source  code,  written  mostly in C with a sprinkling of assembly
  2239.         language,  and  compiled using version 3.1 of the DeSmet/C-Ware C
  2240.         compiler.   We  are grateful for the simplicity, flexibility, and
  2241.         speed  of this compiler, as well as the generous support provided
  2242.         by Joel and Susan Farley of C-Ware Corporation.  
  2243.  
  2244.         The  Last Byte Memory Manager could not have been created without
  2245.         the  gracious  support  of  many  people.   We  wish to thank the
  2246.         following  individuals  who  helped  to  test  beta  versions  or
  2247.         offered  useful  suggestions  for  new  features: Ron Cohen, J.B.
  2248.         Compton,  David  Durgee,  Philip  Gardner,  Mike  Hagerty,  Scott
  2249.         Jordahl,  Alan  Lambert,  Rob  Nee,  Kevin  Parris,  Dan Proctor,
  2250.         Graham  Robertson,  Ken  Sanquist,  Tony  Sheehan, Peter Summers,
  2251.         Steve  Hodsdon, Anthony Cox, My Phung, Martin Beckmann, and Prof.
  2252.         Timo Salmi (of the University of Vaasa, Finland).  
  2253.  
  2254.         Thank's  also  go to Tom Rawson of J. P. Software for providing a
  2255.         copy  of  4DOS, to Sue Nageotte of Digital Research for providing
  2256.         a  copy  of  DR  DOS,  to  Philip Gardner for providing a copy of
  2257.         DOSMAX,  and  to  Pat  Gelsinger of Intel Corporation for lending
  2258.         his  intimate  knowledge  of  the  80x86  instruction  sets.  And
  2259.         finally,  a  special  thanks  to  Serge  Caron,  Roger Cross, and
  2260.         Philip   Gardner   for   their   suggestions,  technical  advice,
  2261.         patience, and friendship.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2282.  
  2283.  
  2284.         Aug 11, 1992    THE LAST BYTE MEMORY MANAGER (tm)              36
  2285.  
  2286.  
  2287.                       APPENDIX 3 - LIMITED WARRANTY       
  2288.  
  2289.  
  2290.         This  software  is provided 'as is' without warranty of any kind,
  2291.         either  expressed  or  implied, including, but not limited to the
  2292.         implied   warranties   of   merchantability  and  fitness  for  a
  2293.         particular  purpose.   The  entire  risk  as  to  the quality and
  2294.         performance of the program is with you.  
  2295.  
  2296.         Some  states do not allow the exclusion of implied warranties, so
  2297.         the  above  exclusions may not apply to you.  This warranty gives
  2298.         you  specific  legal  rights  and  you may also have other rights
  2299.         which vary from state to state.  
  2300.  
  2301.         Key  Software  Products  has  taken  due  care  in  preparing the
  2302.         documentation  and  software  included  in  The  Last Byte Memory
  2303.         Manager   to   ascertain  their  correctness  and  effectiveness.
  2304.         However,  Key  Software  Products does not warrant that operation
  2305.         of  this  software  will  be  uninterrupted or error free.  In no
  2306.         event  shall  Key  Software  Products be liable for incidental or
  2307.         consequential  damages  in  connection with or arising out of the
  2308.         furnishing, performance, or use of this software.  
  2309.  
  2310.  
  2311.                                      LICENSE
  2312.  
  2313.         You  MAY  use  this software on any computer or computers in your
  2314.         possesion, but on no more than one computer at any given time.  
  2315.  
  2316.         You  MAY  copy this software into any machine readable or printed
  2317.         form  for  backup or modification purposes in support of your use
  2318.         of the software.  
  2319.  
  2320.         You  MAY  distribute  the original unmodified, unlicensed version
  2321.         of  this  software,  but you may not charge a fee exceeding $5.00
  2322.         to  cover  the  cost of duplicating, shipping, and handling.  You
  2323.         may NOT distribute a licensed version of this software.  
  2324.  
  2325.         You  may  NOT  use,  copy, modify, sublicense, assign or transfer
  2326.         this  software  and  its license, or any copy or modification, in
  2327.         whole  or  in  part,  except  as  expressly  provided for in this
  2328.         license.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.         Copyright (C) 1990-92, Key Software Products. All Rights Reserved
  2342.  
  2343.